package cn.levill.domain.task.service;

import cn.levill.domain.task.model.entity.TaskEntity;

import java.util.List;

/**
 * @author Levill
 * @description 任务服务接口
 * @date 2025/02/24 22:02
 */
public interface ITaskService {
    /**
     * 查询发送MQ失败和超时1分钟未发送的MQ
     *
     * @return 未发送的任务消息列表10条
     */
    List<TaskEntity> queryNoSendMessageTaskList();

    /**
     * 发送消息
     *
     * @param taskEntity 任务实体
     */
    void sendMessage(TaskEntity taskEntity);

    /**
     * 更新任务 发送消息已完成
     *
     * @param userId    用户 ID
     * @param messageId 消息 ID
     */
    void updateTaskSendMessageCompleted(String userId, String messageId);

    /**
     * 更新任务发送消息失败
     *
     * @param userId    用户 ID
     * @param messageId 消息 ID
     */
    void updateTaskSendMessageFail(String userId, String messageId);
}
